################################################################################
#     ╔═╗╔═╗╔═╗╦╔╗╔╔═╗╦═╗
#     ╠═╣╚═╗╠╣ ║║║║║╣ ╠╦╝
#     ╩ ╩╚═╝╚  ╩╝╚╝╚═╝╩╚═
## @brief
#     email     stanleyguo0207@163.com
#     github    https://github.com/stanleyguo0207
#     gitee     https://gitee.com/stanleyguo0207
#
################################################################################

################################################################################
## @brief
#     收集该目录下源代码
#
CollectSourceFiles(
  ${CMAKE_CURRENT_SOURCE_DIR}
  PRIVATE_SOURCES)
#
################################################################################

################################################################################
## @brief
#     收集源文件目录
#
CollectIncludeDirectories(
  ${CMAKE_CURRENT_SOURCE_DIR}
  PUBLIC_INCLUDES)
#
################################################################################

################################################################################
## @brief
#       项目包含
#
include_directories(${CMAKE_SOURCE_DIR})
#
################################################################################

################################################################################
## @brief
#       执行文件
#
add_executable(asfinger-pbrpc
  ${PRIVATE_SOURCES})
#
################################################################################

################################################################################
## @brief
#       文件包含
#
target_include_directories(asfinger-pbrpc
  PUBLIC
  ${CMAKE_BINARY_DIR}
  ${PUBLIC_INCLUDES}
  ${_asfinger_PROTOBUF_INCLUDE_DIR}
  PRIVATE
  ${CMAKE_CURRENT_BINARY_DIR})
#
################################################################################

################################################################################
## @brief
#       特性配置
#
target_compile_features(asfinger-pbrpc
  PUBLIC
  cxx_std_17
  cxx_alias_templates
  cxx_auto_type
  cxx_constexpr
  cxx_decltype
  cxx_decltype_auto
  cxx_final
  cxx_lambdas
  cxx_generic_lambdas
  cxx_variadic_templates
  cxx_defaulted_functions
  cxx_nullptr
  cxx_trailing_return_types
  cxx_return_type_deduction)
#
################################################################################

################################################################################
## @brief
#       库包含
#
target_link_libraries(asfinger-pbrpc
  PRIVATE
  ${_asfinger_PROTOBUF_LIBRARIES}
  ${_asfinger_PROTOBUF_PROTOC_LIBRARIES})
#
################################################################################

################################################################################
## @brief
#       编译选项
#
if (MSVC)
  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4819")
endif ()
#
################################################################################

################################################################################
## @brief
#       设置安装路径
#
message(STATUS ${CMAKE_SOURCE_DIR})
set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR})
#
################################################################################

################################################################################
## @brief
#       安装
#
install(TARGETS asfinger-pbrpc DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
#
################################################################################